1. Field of the Invention
The invention relates to security in a computer system, and more particularly to a method for generating system passwords derived from an external encryption algorithm and plain text passwords entered during a secure power-on procedure.
2. Description of the Related Art
Large amounts of money are invested by companies and individuals to purchase computer hardware and software, and even more money is spent developing the information contained in data files such as text documents and spreadsheets. Protecting these investments can be critical to the success and reputation of a business. Public accounts of the exploits of computer xe2x80x9chackersxe2x80x9dxe2x80x94as malicious code-breakers or eavesdroppers are sometimes calledxe2x80x94have therefore focused and magnified corporate desires for more secure communications and better methods to protect data. The scope of the problem is undoubtedly even more serious than reported, given the reluctance of many businesses to report security breaches. As a result, security conscious users are requesting that security and integrity features be incorporated into their computers to restrict access to data contained on hard drives, as well as information contained in other critical system components.
One known approach to security involves encryption or cryptography. Cryptography is typically used to protect both data and communications. Generally, the original message or data item is referred to as xe2x80x9cplain textxe2x80x9d, while xe2x80x9cencryptionxe2x80x9d denotes the process of disguising or altering a message in such a way that its substance is not readily discernable. An encrypted message is called xe2x80x9cciphertextxe2x80x9d. Ciphertext is returned to plain text by an inverse operation referred to as xe2x80x9cdecryptionxe2x80x9d. Encryption is typically accomplished through the use of a cryptographic algorithm, which is essentially a mathematical function. There are many types of cryptographic algorithms, providing varying levels of security.
The most common cryptographic algorithms are key-based, where special knowledge of variable information called a xe2x80x9ckeyxe2x80x9d is required to decrypt ciphertext. There are two prevalent types of key-based algorithms: xe2x80x9csymmetricxe2x80x9d (also called secret key or single key algorithms) and xe2x80x9cpublic keyxe2x80x9d (also called asymmetric algorithms). The security in these algorithms is centered around the keysxe2x80x94not the details of the algorithm itself This makes it possible to publish the algorithm for public scrutiny and then mass produce it for incorporation into security products.
In most symmetric algorithms, the encryption key and the decryption key are the same. This single key encryption arrangement is not flaw-free. The sender and recipient of a message must somehow exchange information regarding the secret key. Each side must trust the other not to disclose the key. Further, the sender must generally communicate the key via another media (similar to a bank sending the personal identification number for an ATM card through the mail). This arrangement is not practical when, for example, the parties interact electronically for the first time over a network. The number of keys also increases rapidly as the number of users increases.
With public key algorithms, by comparison, the key used for encryption is different from the key used for decryption. It is generally very difficult to calculate the decryption key from an encryption key. In typical operation, the xe2x80x9cpublic keyxe2x80x9d used for encryption is made public via a readily accessible directory, while the corresponding xe2x80x9cprivate keyxe2x80x9d used for decryption is known only to the recipient of the ciphertext. In an exemplary public key transaction, a sender retrieves the recipient""s public key and uses it to encrypt the message prior to sending it. The recipient then decrypts the message with the corresponding private key. It is also possible to encrypt a message using a private key and decrypt it using a public key. This is sometimes used in digital signatures to authenticate the source of a message.
One problem with public key algorithms is speed. Public key algorithms are typically on the order of 1,000 times slower than symmetric algorithms. This is one reason that secure communications are often implemented using a hybrid cryptosystem. In such a system, one party encrypts a random xe2x80x9csession keyxe2x80x9d with the other party""s public key. The receiving party recovers the session key by decrypting it with his/her private key. All further communications are encrypted using the same session key (which effectively is a secret key) and a symmetric algorithm.
The number of cryptographic algorithms is constantly growing. The two most popular are DES (Data Encryption Standard) and RSA (named after its inventorsxe2x80x94Rivest, Shamir, and Adleman). DES is a symmetric algorithm with a fixed key length of 56 bits. RSA is a public key algorithm that can be used for both encryption and digital signatures. DSA (Digital Signature Algorithm) is another popular public key algorithm that is only used for digital signatures. With any of these algorithms, the relative difficulty of breaking an encrypted message by guessing a key with a brute force attack is proportional to the length of the key. For example, if the key is 40 bits long, the total number of possible keys (240) is about 110 billion. Given the computational power of modern computers, this value is often considered inadequate. By comparison, a key length of 56 bits provides 65,636 times as many possible values as the 40 bit key.
While much attention has been given to protecting communications and data as they are transmitted via internal networks (intranets) and external networks (such as the Internet), few security improvements have focused on the hardware itself. One known method of offering limited access to hardware and the data it contains is by the use of passwords. A password is typically stored in battery-backed CMOS RAM memory. Before the user is allowed access to the computer or secured computer resources, the user is required to enter a password. Once a password is entered, the computer""s power-on routines compares the password to the password in CMOS memory and, if they match, the user is allowed access.
A main disadvantage of this system is that certain forms of attack can bypass the CMOS memory because in many cases it is not read protected. To address this concern, the password can be encoded. Most encoding schemes can be reverse engineered by a sophisticated computer virus or malicious code, however, potentially leading to a costly security breach. Further, the CMOS memory could simply be disconnected from its battery, causing the loss of the password and any other contents.
Physical keys or tokens, such as those used to unlock a door, have also been used to permit access to a computer system. Like the password approach, this type of security is xe2x80x9cone-piecexe2x80x9d in nature, and is compromised if the key or token is stolen. Anyone possessing the key can gain access to the computer""s data and is accorded the same level of access as the authorized user. Improvements in the security of and access to a computer system would be desirable, especially for network servers.
Briefly, a system according to the invention utilizes cryptographic security concepts in conjunction with password security to provide secure two-piece password or user verification. The verification process is carried out during a secure power-up procedure that verifies the integrity of system files prior to execution. At some point during the secure power-up procedure, the computer system checks for the presence of an external token or smart card that is coupled to the computer through hardware. The token or smart card is used to store an encryption algorithm furnished with an encryption key that is unique or of limited production.
Following detection of the external token, the computer user is required to enter a user password. Once entered, the user password is encrypted using the encryption algorithm contained in the external token, thereby creating a system password. The system password is compared to a value stored in secure memory. If the two values match, the power-on sequence is completed and the user is allowed access to the computer system or individually secured resources (which can be configured to require separate passwords). The two-piece nature of the authorization process is advantageous because if either the user password or the external token is misappropriated, it is of little value. Both pieces are required to generate the system password.